Section courante

A propos

Section administrative du site

Contexte Sass interne

Voici le contexte Sass interne :

  1. // Comportements d'entrée
  2. enum Sass_Input_Style {
  3.   SASS_CONTEXT_NULL,
  4.   SASS_CONTEXT_FILE,
  5.   SASS_CONTEXT_DATA,
  6.   SASS_CONTEXT_FOLDER
  7. };
  8.  
  9. // structure des options de configuration sass
  10. struct Sass_Inspect_Options {
  11.  
  12.   // Style de sortie pour le code CSS généré
  13.   // Une valeur des constantes SASS_STYLE_* ci-dessus
  14.   enum Sass_Output_Style output_style;
  15.  
  16.   // Précision pour les nombres fractionnaires
  17.   int precision;
  18.  
  19. };
  20.  
  21. // structure des options de configuration sass
  22. struct Sass_Output_Options : Sass_Inspect_Options {
  23.  
  24.   // Chaîne de caractères à utiliser pour l'indentation
  25.   const char* indent;
  26.   // Chaîne de caractères à utiliser pour les sauts de ligne
  27.   const char* linefeed;
  28.  
  29.   // Émettre des commentaires dans le CSS généré indiquant la ligne source correspondante.
  30.   bool source_comments;
  31. };
  32.  
  33. // structure des options de configuration sass
  34. struct Sass_Options : Sass_Output_Options {
  35.  
  36.   // intégrer sourceMappingUrl comme URI de données
  37.   bool source_map_embed;
  38.  
  39.   // intégrer le contenu inclus dans les cartes
  40.   bool source_map_contents;
  41.  
  42.   // créer des URL de fichiers pour les sources
  43.   bool source_map_file_urls;
  44.  
  45.   // Désactiver sourceMappingUrl dans la sortie CSS
  46.   bool omit_source_map_url;
  47.  
  48.   // Traiter source_string comme sass (par opposition à scss)
  49.   bool is_indented_syntax_src;
  50.  
  51.   // Le chemin d'entrée est utilisé pour la génération de la carte source. Il peut être utilisé pour définir quelque chose avec 
  52.   // la compilation de chaînes ou pour surcharger le chemin du fichier d'entrée. Il est défini sur « stdin » pour les contextes 
  53.   // de données et sur le fichier d'entrée pour les contextes de fichiers.
  54.   char* input_path;
  55.  
  56.   // Le chemin de sortie est utilisé pour la génération de la carte source.
  57.   // LibSass n'écrira pas dans ce fichier, il est simplement utilisé pour créer des informations dans les cartes source,...
  58.   char* output_path;
  59.  
  60.   // Liste de chemins séparés par des deux-points
  61.   // Séparés par des points-virgules sous Windows
  62.   // Peut-être utiliser une interface de tableau à la place ?
  63.   char* include_path;
  64.   char* plugin_path;
  65.  
  66.   // Inclure les chemins (liste de chaînes de caractères chaînées)
  67.   struct string_list* include_paths;
  68.   // Chemins d'accès aux plugins (liste de chaînes chaînées)
  69.   struct string_list* plugin_paths;
  70.  
  71.   // Chemin d'accès au fichier source map
  72.   // Active la génération de la carte source
  73.   // Utilisé pour créer sourceMappingUrl
  74.   char* source_map_file;
  75.  
  76.   // Directement inséré dans les cartes sources
  77.   char* source_map_root;
  78.  
  79.   // Fonctions personnalisées pouvant être appelées à partir du code sccs
  80.   Sass_Function_List c_functions;
  81.  
  82.   // Rappel pour surcharger les importations
  83.   Sass_Importer_List c_importers;
  84.  
  85.   // Liste des en-têtes personnalisés
  86.   Sass_Importer_List c_headers;
  87.  
  88. };
  89.  
  90. // base pour tous les contextes
  91. struct Sass_Context : Sass_Options {
  92.  
  93.   // informations sur le type de contexte du magasin
  94.   enum Sass_Input_Style type;
  95.  
  96.   // données de sortie générées
  97.   char* output_string;
  98.  
  99.   // carte source générée json
  100.   char* source_map_string;
  101.  
  102.   // état d'erreur
  103.   int error_status;
  104.   char* error_json;
  105.   char* error_text;
  106.   char* error_message;
  107.   // position d'erreur
  108.   char* error_file;
  109.   size_t error_line;
  110.   size_t error_column;
  111.   char* error_src;
  112.  
  113.   // signaler les fichiers importés
  114.   char** included_files;
  115.  
  116. };
  117.  
  118. // structure pour la compilation de fichiers
  119. struct Sass_File_Context : Sass_Context {
  120.   // aucun champ supplémentaire requis
  121.   // input_path est déjà activé
  122. };
  123.  
  124. // structure pour la compilation des données
  125. struct Sass_Data_Context : Sass_Context {
  126.   // chaîne source fournie
  127.   char* source_string;
  128.   char* srcmap_string;
  129.  
  130. };
  131.  
  132. // États du compilateur
  133. enum Sass_Compiler_State {
  134.   SASS_COMPILER_CREATED,
  135.   SASS_COMPILER_PARSED,
  136.   SASS_COMPILER_EXECUTED
  137. };
  138.  
  139. // lien c et contexte cpp
  140. struct Sass_Compiler {
  141.   // état d'avancement
  142.   Sass_Compiler_State state;
  143.   // contexte c original
  144.   Sass_Context* c_ctx;
  145.   // Sass::Context
  146.   Sass::Context* cpp_ctx;
  147.   // Sass::Block
  148.   Sass::Block_Obj root;
  149. };


Dernière mise à jour : Mardi, le 8 octobre 2024