Manageable User Options

javascript
const USER_OPTIONS = {
    // Directory Configuration
    directories: {
      toolingContentDir: path.join(process.cwd(), 'src/content/tooling'),
      lostInPublicContentDir: path.join(process.cwd(), 'src/content/lost-in-public'),
      specificationsContentDir: path.join(process.cwd(), 'src/content/specs'),
      keepingUpContentDir: path.join(process.cwd(), 'src/content/keeping-up'),
      dataDir: path.join(process.cwd(), 'src/content/data'),
      evaluationOutputDir: path.join(process.cwd(), 'src/content/changelog--content'),
      fixesNeededDir: path.join(process.cwd(), 'scripts/fixes-needed'),
      videoRegistryFile: path.join(process.cwd(), 'src/data/video-registry.json'),
      excludeUrlCheck: ['Explainers'] // Directories to exclude from URL checks
    },

    reporting: {
        // output file for quality assurance
        preprocessingOutputPathAndFile: {
          baseFile: path.join(process.cwd(), 'src/content/changelog--content/preprocessing-output.md'),
          pattern: {
                dateFormat: 'YYYY-MM-DD',
                iterationFormat: '00', // 01, 02, etc.
                separator: '_',
                extension: '.md'
            }
        },

        // output file for quality assurance
        evaluationOutputPathAndFile: {
            baseFile: path.join(process.cwd(), 'src/content/changelog--content/evaluation-output.md'),
                    pattern: {
                    dateFormat: 'YYYY-MM-DD',
                    iterationFormat: '00', // 01, 02, etc.
                    separator: '_',
                    extension: '.md'
                },
        },
        // Report by specific issue files
        reportBySpecificIssueFiles: {
          // Lists files that have lowercaseTags: {
            lowercaseTags: {
              baseFile: path.join(process.cwd(), 'site/scripts/data-or-content-generation/fixes-needed/Lowercase-Tags.md'),
                pattern: {
                dateFormat: 'YYYY-MM-DD',
                iterationFormat: '00', // 01, 02, etc.
                separator: '_',
                extension: '.md'
              }
            },
          // Lists files that have missingUrls: {
            missingUrls: {
              baseFile: path.join(process.cwd(), 'site/scripts/data-or-content-generation/fixes-needed/Missing-URLs.md'),
              pattern: {
                dateFormat: 'YYYY-MM-DD',
                iterationFormat: '00', // 01, 02, etc.
                separator: '_',
                extension: '.md'
              }
            }
        }
    },

    // Frontmatter Property Sets
    frontmatterPropertySets: {
        urlProperties: ['url', 'image', 'favicon', 'og_screenshot_url', 'og_image'],
        errorMessageProperties: ['jina_error', 'og_errors'],
        plainTextProperties: ['description', 'og_description', 'zinger', 'site_description_cp']
    },
  
    // Regular Expressions
    regex: {
      detectUrlProperties: /(?:url|image|favicon|og_screenshot_url|og_image)/g,
      detectYoutubeUrls: /()/g,
      extractYoutubeIds: /()/g,
      frontmatter: /^---\r?\n([\s\S]*?)\r?\n---/,
      yamlKey: /^(\w+(?:-\w+)*?):/
    },


  // File Generation
    dataFiles: {
      youtubeUrls: 'site/src/content/data/video-registry.json'
    },

  }


export { USER_OPTIONS };